﻿using Apex.ASPNETCore.GlobalException;
using Apex.EventBus.Extensions;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using System.Net;

namespace CommonInitializer
{
    public static class ApplicationBuilderExtensions
    {
        public static IApplicationBuilder UseApexDefault(this IApplicationBuilder app)
        {

            // 自定义异常处理中间件
            app.UseMiddleware<GlobalMiddleWare>();

            app.UseEventBus();

            // 启用跨域资源共享(CORS)
            app.UseCors();

            // 使用转发的标头中间件
            app.UseForwardedHeaders();

            // 使用身份验证中间件
            app.UseAuthentication();

            // 使用授权中间件
            app.UseAuthorization();

            //不能与ForwardedHeaders很好的工作，而且webapi项目也没必要配置这个
            //app.UseHttpsRedirection();
            // 自定义异常处理中间件
            app.UseMiddleware<GlobalMiddleWare>();

            return app;
        }
    }
}
